#pragma once


#include "MessageFwd.h"
#include "GameStateFwd.h"
#include "FlightInfoFwd.h"
#include "ShipsArrivedInfoFwd.h"
#include "RejectionReason.h"
#include "GalconCommonTypes.h"
#include <boost/asio.hpp>

namespace MessageBuilder
{
   MessagePtr BuildGameStateMessage(GameStatePtr);
   MessagePtr BuildGameStateInitialMessage(GameStatePtr, PlayerID, GameColors);
   MessagePtr BuildRejectionMessage(RejectionReason);
   MessagePtr BuildShipsLaunchedMessage(const FlightInfoPtr);
   MessagePtr BuildShipsArrivedMessage(const ShipsArrivedInfoPtr);
   MessagePtr BuildErrorDescriptionMessage(const boost::system::error_code &);
};